package org.jederik.studip.service;

/**
 * Enthält Unterklassen mit Informationen zu den verfügbaren Tabellen.
 * @author Jann-Frederik Laß
 *
 */
public interface Const {
	
	/**
	 * Informationen zur Tabelle {@code /notifications}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class Notifications {
		
		/** Resourcenpfad */
		public static final String PATH = "/notifications";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"type", "count"};
	}
	
	/**
	 * Informationen zur Tabelle {@code /feed}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class Feed {
		
		/** Resourcenpfad */
		public static final String PATH = "/feed";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"object_id", "object_type", "title", "description", "date", "read"};


	}
	
	/**
	 * Informationen zur Tabelle {@code /news}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class News {
		
		/** Resourcenpfad */
		public static final String PATH = "/news";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"topic", "body", "author", "date", "range"};

	}

	/**
	 * Informationen zur Tabelle {@code /messages}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class Messages {
		
		/** Resourcenpfad */
		public static final String PATH = "/messages";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"subject", "date", "author", "text", "author_uname"};

	}

	/**
	 * Informationen zur Tabelle {@code /schedules}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class Schedules {
		
		/** Resourcenpfad */
		public static final String PATH = "/schedules";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"title", "range", "start", "end", "description"};

	}

	/**
	 * Informationen zur Tabelle {@code /objects}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class Objects {
		
		/** Resourcenpfad */
		public static final String PATH = "/objects";
		
	}

	/**
	 * Informationen zur Tabelle {@code /schedules}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class MyCourses {
		
		/** Resourcenpfad */
		public static final String PATH = "/mycourses";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"object_id", "title"};

	}

	/**
	 * Informationen zur Tabelle {@code /courses}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class Courses {
		
		/** Resourcenpfad */
		public static final String PATH = "/courses";
		
		/**
		 * Informationen zur Tabelle {@code /feed}
		 * @author Jann-Frederik Laß
		 *
		 */
		public static class Participants {
			
			/** Resourcenpfad */
			public static final String PATH = "/participants";
			
			/** Tabellenüberschriften */
			public static final String[] HEADERS = 
				new String[] {"username", "fullname", "status"};


		}
		
		/**
		 * Informationen zur Tabelle {@code /feed}
		 * @author Jann-Frederik Laß
		 *
		 */
		public static class Details {
			
			/** Resourcenpfad */
			public static final String PATH = "/details";
			
			/** Tabellenüberschriften */
			public static final String[] HEADERS = 
				new String[] {"object_id", "title", "subtitle", "description", "location"};

		}
		
	}

	/**
	 * Informationen zur Tabelle {@code /export_schedule}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class ExportSchedule {
		
		/** Resourcenpfad */
		public static final String PATH = "/export_schedule";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"object_id", "title", "location", "description", "start", "end", "chdate"};

	}

	/**
	 * Informationen zur Tabelle {@code /export_schedule}
	 * @author Jann-Frederik Laß
	 *
	 */
	public static class VisitedObjects {
		
		/** Resourcenpfad */
		public static final String PATH = "/visited_objects";
		
		/** Tabellenüberschriften */
		public static final String[] HEADERS = 
			new String[] {"object_id", "visitdate"};

	}

}

